package edu.caece.automaton;

import java.util.Set;


public interface Automaton  {
	
	public boolean run(String word);
	
	public boolean step(Character character);
	
	public State peek(Character character);
	
	public void reset();
	
	public State getStartState();
	
	public void setStartState(State startState);
	
	public void addTransition(Transition transition);
	
	public void setAcceptStates(Set<State> states);
	
	public Set<State> getAcceptStates();
	
	public void setAcceptStatesFromNameSet(Set<String> statesNameSet);
	
	public void setTransitionsFromStringSet(Set<String> transitionsStringSet);
	
	public State getCurrentState();

}
